package com.itlong.cloud.enumerate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *     微信推送消息枚举类型
 * </p>
 *
 * @author Jiaqi.X
 * @version 1.0
 * @date 2016-12-23 11:21:35
 */
public enum WeChatPushedType {
    ADVICE("advice",1),                 //咨询
    SHOPCHEATS("shopCheats",2),        //开店宝典
    SUBSCRIBE("subscribe",3),         //订阅消息
    FINACIALSERVICE("financialService",4),           //金融服务
    INDUSTYREPORT("IndustryReport",5);      //行业报告

    private String description;
    private int type;


    WeChatPushedType(String description, int type) {
        this.description = description;
        this.type = type;
    }

    /**
     * {@link #description}的getter。
     */
    public String getDescription() {
        return description;
    }

    /**
     * {@link #type}的getter。
     */
    public int getType() {
        return type;
    }



    /**
     * <p>
     *     获取枚举的描述。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link String}。
     */
    public static String getDescription(int type){
        WeChatPushedType[] types = WeChatPushedType.values();
        for(WeChatPushedType limitCategory : types ){
            if(limitCategory.getType() == type){
                return limitCategory.getDescription();
            }
        }
        return null;
    }


    /**
     * <p>
     *     获取枚举的类型。
     * <p/>
     *
     * @param type  类型值。
     * @return {@link int}。
     */
    public static int getType(int type) {
        WeChatPushedType[] types = WeChatPushedType.values();
        for(WeChatPushedType limitCategory : types ){
            if(limitCategory.getType() == type){
                return limitCategory.getType();
            }
        }
        return 0 ;
    }



    /**
     * <p>
     *     获取枚举的list。
     * <p/>
     *
     * @return {@link java.util.List}。
     */
    public static List<Map> toList() {
        List<Map> mapList = new ArrayList<Map>();
        WeChatPushedType[] ds = WeChatPushedType.values();
        for (WeChatPushedType one : ds) {
            Map<String,Object> term= new HashMap<String,Object>();
            term.put("type",one.getType());
            term.put("description",one.getDescription());
            mapList.add(term);
        }
        return mapList;
    }
}
